import axios from 'axios'
import { showLoadingToast, closeToast } from 'vant'
import 'vant/es/toast/style'
// 封装请求
function request (config) {
  // 设置请求基本路径
  let host
  if (process.env.NODE_ENV === 'development') {
    host = 'http://shop.bufantec.com/bufan'
  } else {
    host = 'http://shop.bufantec.com/bufan'
  }
  // 创建请求实例
  const instance = axios.create({
    baseURL: host,
    timeout: 1000 * 5
  })
  // 请求拦截器 - 开启loading / 修改请求参数 / 配置请求头
  instance.interceptors.request.use(config => {
    // ...
    showLoadingToast({
      message: '加载中...',
      forbidClick: true
    })
    config.method = config.method ? config.method : 'get'
    if (config.method.toLowerCase() === 'get') {
      config.params = config.data
    }
    return config
  }, Promise.reject)

  // 响应拦截器 - 修改返回值，处理异常
  instance.interceptors.response.use(response => {
    // 关闭 loading
    closeToast()
    // 直接获取后台返回的值
    return response.data
  }, err => {
    closeToast()
    // 处理错误状态码
    // httpErrorStatusHandle(err)
    // 将错误返回给具体的页面
    return Promise.reject(err)
  })
  return instance(config)
}

export default request
